home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / athena / zephyr / dist / patch1 < prev    next >
Encoding:
Text File  |  1989-10-16  |  56.5 KB  |  2,060 lines

  1. This is patch #1 to the Zephyr sources.  Besides this patch, you also
  2. want to pick up the file src.zwgc.zwgc.el, and place it into src/zwgc/zwgc.el
  3. (replacing the existing contents) [this isn't done via patch because the
  4. old version has control characters in it].
  5.  
  6. BE SURE TO APPLY THIS PATCH WITH
  7.  
  8.    patch -p
  9.  
  10. TO PRESERVE THE DIRECTORY HIERARCHY.
  11.  
  12. CHANGES in this patch file:
  13.     - null-pointer bug fixes in zephyrd code and library code
  14.     - zaway now ignores PING messages
  15.     - zshutdown_notify sends messages authenticated (if possible)
  16.     - Imakefile fixes for lib/
  17.     - lint fix for lib/strcasecmp.c
  18.     - Imake.rules fixes for install steps, ranlib steps
  19.     - lint library flag is now configurable in config.Imakefile
  20.     - updated Kerberos error code table
  21.     - updated manual page for reverse stacking option on zwgc(1)
  22.     - move version ID of server to separate file
  23.     - turn on keepalive in server brain-dumps
  24.     - ICCCM-compliant window restack request code for zwgc
  25.  
  26. NOTE:  Due to some changes in config/config.Imakefile, I
  27. recommend that you recopy this file into any configurations you have
  28. build and re-edit it with your local changes.
  29.  
  30. You will want to re-build your entire source tree with 'make world'
  31. after applying this patchlevel.
  32.  
  33. Prereq: 0
  34. diff -rc src/patchlevel.h /mit/zephyr/src/patchlevel.h
  35. *** patchlevel0/patchlevel.h    Thu Apr 20 11:01:29 1989
  36. --- src/patchlevel.h    Tue Oct 17 16:14:00 1989
  37. ***************
  38. *** 1 ****
  39. ! #define PATCHLEVEL 0
  40. --- 1 ----
  41. ! #define PATCHLEVEL 1
  42. diff -rc src/clients/zaway/zaway.c /mit/zephyr/src/clients/zaway/zaway.c
  43. *** patchlevel0/clients/zaway/zaway.c    Mon Dec  5 16:31:38 1988
  44. --- src/clients/zaway/zaway.c    Wed Sep  6 15:06:26 1989
  45. ***************
  46. *** 3,9 ****
  47.    *
  48.    *    Created by:    Robert French
  49.    *
  50. !  *    $Source: /mit/zephyr/src/clients/zaway/RCS/zaway.c,v $
  51.    *    $Author: jtkohl $
  52.    *
  53.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  54. --- 3,9 ----
  55.    *
  56.    *    Created by:    Robert French
  57.    *
  58. !  *    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/clients/zaway/RCS/zaway.c,v $
  59.    *    $Author: jtkohl $
  60.    *
  61.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  62. ***************
  63. *** 20,26 ****
  64.   #include <signal.h>
  65.   
  66.   #ifndef lint
  67. ! static char rcsid_zaway_c[] = "$Header: zaway.c,v 1.6 88/12/05 16:31:25 jtkohl Exp $";
  68.   #endif lint
  69.   
  70.   #define MESSAGE_CLASS "MESSAGE"
  71. --- 20,26 ----
  72.   #include <signal.h>
  73.   
  74.   #ifndef lint
  75. ! static char rcsid_zaway_c[] = "$Header: /afs/athena.mit.edu/astaff/project/zephyr/src/clients/zaway/RCS/zaway.c,v 1.7 89/09/06 15:06:16 jtkohl Exp $";
  76.   #endif lint
  77.   
  78.   #define MESSAGE_CLASS "MESSAGE"
  79. ***************
  80. *** 99,111 ****
  81.               com_err(argv[0],retval,"while receiving notice");
  82.               continue;
  83.           }
  84. !         if (!strcmp(notice.z_sender,ZGetSender()))
  85. !             continue;
  86. !         if (!strcmp(notice.z_message,"Automated reply:"))
  87. !             continue;
  88.           if (fp) {
  89. !             if (!(ptr = find_message(¬ice,fp)))
  90.                   continue;
  91.           }
  92.           else {
  93.               ptr = malloc(sizeof(DEFAULT_MSG)+1);
  94. --- 99,117 ----
  95.               com_err(argv[0],retval,"while receiving notice");
  96.               continue;
  97.           }
  98. !         if (strcmp(notice.z_sender,ZGetSender()) == 0 ||
  99. !             strcmp(notice.z_opcode,"PING") == 0 ||
  100. !             strcmp(notice.z_message,"Automated reply:") == 0) {
  101. !              ZFreeNotice(¬ice);
  102. !              continue;
  103. !         }
  104.           if (fp) {
  105. !             if (!(ptr = find_message(¬ice,fp))) {
  106. !                 ZFreeNotice(¬ice);
  107.                   continue;
  108. +             }
  109.           }
  110.           else {
  111.               ptr = malloc(sizeof(DEFAULT_MSG)+1);
  112. ***************
  113. *** 125,131 ****
  114.           notice.z_message_len = strlen(notice.z_message)+1;
  115.           if ((retval = ZSendList(¬ice,msg,2,ZNOAUTH)) != ZERR_NONE) {
  116.               com_err(argv[0],retval,"while sending notice");
  117. -             continue;
  118.           }
  119.           free(ptr);
  120.           ZFreeNotice(¬ice);
  121. --- 131,136 ----
  122. diff -rc src/clients/zshutdown_notify/zshutdown_notify.c /mit/zephyr/src/clients/zshutdown_notify/zshutdown_notify.c
  123. *** patchlevel0/clients/zshutdown_notify/zshutdown_notify.c    Tue Jun 28 16:19:43 1988
  124. --- src/clients/zshutdown_notify/zshutdown_notify.c    Fri Jul 28 16:38:39 1989
  125. ***************
  126. *** 4,10 ****
  127.    *
  128.    *    Created by:    C. Anthony Della Fera
  129.    *
  130. !  *    $Source: /mit/zephyr/src/clients/zshutdown_notify/RCS/zshutdown_notify.c,v $
  131.    *    $Author: jtkohl $
  132.    *
  133.    *    Copyright (c) 1987 by the Massachusetts Institute of Technology.
  134. --- 4,10 ----
  135.    *
  136.    *    Created by:    C. Anthony Della Fera
  137.    *
  138. !  *    $Source: /afs/athena.mit.edu/mit/zephyr/src/clients/zshutdown_notify/RCS/zshutdown_notify.c,v $
  139.    *    $Author: jtkohl $
  140.    *
  141.    *    Copyright (c) 1987 by the Massachusetts Institute of Technology.
  142. ***************
  143. *** 23,29 ****
  144.   
  145.   #ifndef lint
  146.   #ifndef SABER
  147. ! static char *rcsid_zshutdown_notify_c = "$Header: zshutdown_notify.c,v 1.5 88/06/28 16:19:34 jtkohl Exp $";
  148.   #endif SABER
  149.   #endif lint
  150.   
  151. --- 23,29 ----
  152.   
  153.   #ifndef lint
  154.   #ifndef SABER
  155. ! static char *rcsid_zshutdown_notify_c = "$Header: /afs/athena.mit.edu/mit/zephyr/src/clients/zshutdown_notify/RCS/zshutdown_notify.c,v 1.6 89/07/28 16:38:24 jtkohl Exp $";
  156.   #endif SABER
  157.   #endif lint
  158.   
  159. ***************
  160. *** 30,38 ****
  161.   #define N_KIND        UNSAFE
  162.   #define N_CLASS        "FILSRV"
  163.   #define N_OPCODE    "SHUTDOWN"
  164. ! #define N_DEF_FORMAT    "@bold(Shutdown message from $1 at $time)\n@center(System going down, message is:)\n\n$2\n\n@center(@bold($3))"
  165.   #define N_FIELD_CNT    3
  166.   
  167.   /*
  168.    * Standard warning strings appended as extra fields to
  169.    * the message body.
  170. --- 30,42 ----
  171.   #define N_KIND        UNSAFE
  172.   #define N_CLASS        "FILSRV"
  173.   #define N_OPCODE    "SHUTDOWN"
  174. ! #define N_DEF_FORMAT    "From $sender:\n@bold(Shutdown message from $1 at $time)\n@center(System going down, message is:)\n\n$2\n\n@center(@bold($3))"
  175.   #define N_FIELD_CNT    3
  176.   
  177. + #ifdef KERBEROS
  178. + #define SVC_NAME    "rcmd"
  179. + #endif
  180.   /*
  181.    * Standard warning strings appended as extra fields to
  182.    * the message body.
  183. ***************
  184. *** 51,56 ****
  185. --- 55,67 ----
  186.       char hostname[MAXHOSTNAMELEN];
  187.       char msgbuff[BUFSIZ], message[Z_MAXPKTLEN], *ptr;
  188.       char *msg[N_FIELD_CNT];
  189. + #ifdef KERBEROS
  190. +     char tkt_filename[MAXPATHLEN];
  191. +     char rlm[REALM_SZ];
  192. +     char hn2[MAXHOSTNAMELEN];
  193. +     char *cp;
  194. +     extern char *krb_get_phost();
  195. + #endif
  196.   
  197.       msg[0] = hostname;
  198.       msg[1] = message;
  199. ***************
  200. *** 69,74 ****
  201. --- 80,110 ----
  202.       if ((hp = gethostbyname(hostname)) != NULL)
  203.           (void) strcpy(hostname, hp->h_name);
  204.   
  205. + #ifdef KERBEROS
  206. +     (void) sprintf(tkt_filename, "/tmp/tkt_zshut_%d", getpid());
  207. +     krb_set_tkt_string(tkt_filename);
  208. +     cp = krb_get_phost(hostname);
  209. +     if (cp)
  210. +     (void) strcpy(hn2, cp);
  211. +     else {
  212. +     fprintf(stderr, "%s: can't figure out canonical hostname\n",argv[0]);
  213. +     exit(1);
  214. +     }
  215. +     if (retval = krb_get_lrealm(rlm, 1)) {
  216. +     fprintf(stderr, "%s: can't get local realm: %s\n",
  217. +         argv[0], krb_err_txt[retval]);
  218. +     exit(1);
  219. +     }
  220. +     if (retval = krb_get_svc_in_tkt(SVC_NAME, hn2, rlm,
  221. +                     SERVER_SERVICE, SERVER_INSTANCE, 1,
  222. +                     KEYFILE)) {
  223. +     fprintf(stderr, "%s: can't get tickets: %s\n",
  224. +         argv[0], krb_err_txt[retval]);
  225. +     exit(1);
  226. +     }
  227. + #endif
  228.       ptr = message;
  229.   
  230.       for (;;) {
  231. ***************
  232. *** 93,100 ****
  233.       notice.z_recipient = "";
  234.       notice.z_default_format = N_DEF_FORMAT;
  235.   
  236. !     if ((retval = ZSendList(¬ice, msg, N_FIELD_CNT, ZNOAUTH)) != ZERR_NONE) {
  237.           com_err(argv[0], retval, "while sending notice");
  238.           exit(1);
  239.       } 
  240.   }
  241. --- 129,142 ----
  242.       notice.z_recipient = "";
  243.       notice.z_default_format = N_DEF_FORMAT;
  244.   
  245. !     if ((retval = ZSendList(¬ice, msg, N_FIELD_CNT, ZAUTH)) != ZERR_NONE) {
  246.           com_err(argv[0], retval, "while sending notice");
  247. + #ifdef KERBEROS
  248. +         (void) dest_tkt();
  249. + #endif
  250.           exit(1);
  251.       } 
  252. + #ifdef KERBEROS
  253. +     (void) dest_tkt();
  254. + #endif
  255.   }
  256. diff -rc src/config/Imake.rules /mit/zephyr/src/config/Imake.rules
  257. *** patchlevel0/config/Imake.rules    Wed May 31 11:30:28 1989
  258. --- src/config/Imake.rules    Tue Jul 25 13:39:24 1989
  259. ***************
  260. *** 3,11 ****
  261.   /**/#    For copying and distribution information, see the file
  262.   /**/#    "mit-copyright.h". 
  263.   /**/#
  264. ! /**/#    $Source: /mit/zephyr/src/config/RCS/Imake.rules,v $
  265.   /**/#    $Author: jtkohl $
  266. ! /**/#    $Header: Imake.rules,v 1.14 89/05/31 11:30:00 jtkohl Exp $
  267.   /**/#
  268.   
  269.   #ifdef __STDC__
  270. --- 3,11 ----
  271.   /**/#    For copying and distribution information, see the file
  272.   /**/#    "mit-copyright.h". 
  273.   /**/#
  274. ! /**/#    $Source: /afs/athena.mit.edu/mit/zephyr/src/config/RCS/Imake.rules,v $
  275.   /**/#    $Author: jtkohl $
  276. ! /**/#    $Header: Imake.rules,v 1.17 89/07/25 13:39:18 jtkohl Exp $
  277.   /**/#
  278.   
  279.   #ifdef __STDC__
  280. ***************
  281. *** 95,101 ****
  282.   lint:: concat3(llib-l,libname,.ln)                    @@\
  283.                                       @@\
  284.   concat3(llib-l,libname,.ln):: srcs                    @@\
  285. !     $(LINT) concat(-C,libname) $(LINTFLAGS) srcs lintlibs         @@\
  286.                                       @@\
  287.   clean::                                 @@\
  288.       $(RM) concat3(lib,libname,.a) concat3(lib,libname,_p.a)        @@\
  289. --- 95,101 ----
  290.   lint:: concat3(llib-l,libname,.ln)                    @@\
  291.                                       @@\
  292.   concat3(llib-l,libname,.ln):: srcs                    @@\
  293. !     $(LINT) concat($(LINTLIBFLAG),libname) $(LINTFLAGS) srcs lintlibs     @@\
  294.                                       @@\
  295.   clean::                                 @@\
  296.       $(RM) concat3(lib,libname,.a) concat3(lib,libname,_p.a)        @@\
  297. ***************
  298. *** 104,114 ****
  299.       $(RM) profiled/?*.o                        @@\
  300.                                       @@\
  301.   install::                                 @@\
  302. !     $(INSTALLRAW) -m 644 concat3(lib,libname,.a) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  303. !     $(RANLIB) -t concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  304.       $(CHMOD) 444 concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  305. !     $(INSTALLRAW) -m 644 concat3(lib,libname,_p.a) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  306. !     $(RANLIB) -t concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  307.       $(CHMOD) 444 concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  308.       $(INSTALLFILE) concat3(llib-l,libname,.ln) concat4($(DESTDIR)$(LINTLIBDIR)/,llib-l,libname,.ln)
  309.   #else /* !PROFILED_LIBS */
  310. --- 104,114 ----
  311.       $(RM) profiled/?*.o                        @@\
  312.                                       @@\
  313.   install::                                 @@\
  314. !     $(INSTALLRAW) -c -m 644 concat3(lib,libname,.a) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  315. !     $(RANLIB) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  316.       $(CHMOD) 444 concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  317. !     $(INSTALLRAW) -c -m 644 concat3(lib,libname,_p.a) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  318. !     $(RANLIB) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  319.       $(CHMOD) 444 concat4($(DESTDIR)$(LIBDIR)/,lib,libname,_p.a)    @@\
  320.       $(INSTALLFILE) concat3(llib-l,libname,.ln) concat4($(DESTDIR)$(LINTLIBDIR)/,llib-l,libname,.ln)
  321.   #else /* !PROFILED_LIBS */
  322. ***************
  323. *** 125,131 ****
  324.   lint:: concat3(llib-l,libname,.ln)                    @@\
  325.                                       @@\
  326.   concat3(llib-l,libname,.ln):: srcs                    @@\
  327. !     $(LINT) concat(-C,libname) $(LINTFLAGS) srcs lintlibs         @@\
  328.                                       @@\
  329.   clean::                                 @@\
  330.       $(RM) concat3(lib,libname,.a)                    @@\
  331. --- 125,131 ----
  332.   lint:: concat3(llib-l,libname,.ln)                    @@\
  333.                                       @@\
  334.   concat3(llib-l,libname,.ln):: srcs                    @@\
  335. !     $(LINT) concat($(LINTLIBFLAG),libname) $(LINTFLAGS) srcs lintlibs     @@\
  336.                                       @@\
  337.   clean::                                 @@\
  338.       $(RM) concat3(lib,libname,.a)                    @@\
  339. ***************
  340. *** 133,140 ****
  341.       $(RM) objs                            @@\
  342.                                       @@\
  343.   install::                                 @@\
  344. !     $(INSTALLRAW) -m 644 concat3(lib,libname,.a) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  345. !     $(RANLIB) -t concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  346.       $(CHMOD) 444 concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  347.       $(INSTALLFILE) concat3(llib-l,libname,.ln) concat4($(DESTDIR)$(LINTLIBDIR)/,llib-l,libname,.ln)
  348.   #endif /* PROFILED_LIBS */
  349. --- 133,140 ----
  350.       $(RM) objs                            @@\
  351.                                       @@\
  352.   install::                                 @@\
  353. !     $(INSTALLRAW) -c -m 644 concat3(lib,libname,.a) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  354. !     $(RANLIB) concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  355.       $(CHMOD) 444 concat4($(DESTDIR)$(LIBDIR)/,lib,libname,.a)    @@\
  356.       $(INSTALLFILE) concat3(llib-l,libname,.ln) concat4($(DESTDIR)$(LINTLIBDIR)/,llib-l,libname,.ln)
  357.   #endif /* PROFILED_LIBS */
  358. ***************
  359. *** 253,259 ****
  360.   #define    depend_target()                            @@\
  361.   depend:: $(CODE)                            @@\
  362.       @echo "### Now computing dependencies"                @@\
  363. !     @$(DEPEND) -s "# DO NOT DELETE" $(CFLAGS) $(SRCS)
  364.   
  365.   #define clean_target()                            @@\
  366.   clean::                                    @@\
  367. --- 253,259 ----
  368.   #define    depend_target()                            @@\
  369.   depend:: $(CODE)                            @@\
  370.       @echo "### Now computing dependencies"                @@\
  371. !     @$(DEPEND) -s "# DO NOT DELETE" -- $(CFLAGS) -- $(SRCS)
  372.   
  373.   #define clean_target()                            @@\
  374.   clean::                                    @@\
  375. diff -rc src/config/config.Imakefile /mit/zephyr/src/config/config.Imakefile
  376. *** patchlevel0/config/config.Imakefile    Tue May 30 23:29:51 1989
  377. --- src/config/config.Imakefile    Tue Aug 29 17:04:08 1989
  378. ***************
  379. *** 3,11 ****
  380.   /**/#    For copying and distribution information, see the file
  381.   /**/#    "mit-copyright.h". 
  382.   /**/#
  383. ! /**/#    $Source: /mit/zephyr/src/config/RCS/config.Imakefile,v $
  384.   /**/#    $Author: jtkohl $
  385. ! /**/#    $Header: config.Imakefile,v 1.13 89/05/30 23:29:32 jtkohl Exp $
  386.   /**/#
  387.   
  388.   /* 
  389. --- 3,11 ----
  390.   /**/#    For copying and distribution information, see the file
  391.   /**/#    "mit-copyright.h". 
  392.   /**/#
  393. ! /**/#    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v $
  394.   /**/#    $Author: jtkohl $
  395. ! /**/#    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/config/RCS/config.Imakefile,v 1.17 89/08/29 17:03:56 jtkohl Exp $
  396.   /**/#
  397.   
  398.   /* 
  399. ***************
  400. *** 15,21 ****
  401.   /* XXX BEGIN LIKELY SITE-SPECIFIC CONFIGURATION XXX */
  402.   
  403.   /* This should be set to the root of your Zephyr source tree */
  404. ! SRCTOP=/mit/zephyr/src
  405.   
  406.   /* IMAKE names the command to be used to build Makefiles from
  407.      Imakefiles.  If you have Imake installed somewhere else, 
  408. --- 15,21 ----
  409.   /* XXX BEGIN LIKELY SITE-SPECIFIC CONFIGURATION XXX */
  410.   
  411.   /* This should be set to the root of your Zephyr source tree */
  412. ! SRCTOP=/afs/athena.mit.edu/astaff/project/zephyr/src
  413.   
  414.   /* IMAKE names the command to be used to build Makefiles from
  415.      Imakefiles.  If you have Imake installed somewhere else, 
  416. ***************
  417. *** 119,124 ****
  418. --- 119,130 ----
  419.   LINTLIBDIR= /usr/lib/lint
  420.   MANDIR=/usr/man
  421.   ACLDIR=/usr/athena/lib/zephyr
  422. + /*
  423. +  * LINTLIBFLAG should be the flag used to tell lint to create a lint
  424. +  * library.  On most BSD systems, this is -C
  425. +  */
  426. + LINTLIBFLAG=-C
  427.   
  428.   /* XXX END LIKELY SITE-SPECIFIC CONFIGURATION XXX */
  429.   
  430. diff -rc src/lib/Imakefile /mit/zephyr/src/lib/Imakefile
  431. *** patchlevel0/lib/Imakefile    Wed May 31 10:17:57 1989
  432. --- src/lib/Imakefile    Tue Jul 25 13:40:30 1989
  433. ***************
  434. *** 3,11 ****
  435.   /**/#    For copying and distribution information, see the file
  436.   /**/#    "mit-copyright.h". 
  437.   /**/#
  438. ! /**/#    $Source: /mit/zephyr/src/lib/RCS/Imakefile,v $
  439.   /**/#    $Author: jtkohl $
  440. ! /**/#    $Header: Imakefile,v 1.5 89/05/31 10:17:40 jtkohl Exp $
  441.   /**/#
  442.   #define no_curdir_lint
  443.   
  444. --- 3,11 ----
  445.   /**/#    For copying and distribution information, see the file
  446.   /**/#    "mit-copyright.h". 
  447.   /**/#
  448. ! /**/#    $Source: /afs/athena.mit.edu/mit/zephyr/src/lib/RCS/Imakefile,v $
  449.   /**/#    $Author: jtkohl $
  450. ! /**/#    $Header: Imakefile,v 1.7 89/07/25 13:40:27 jtkohl Exp $
  451.   /**/#
  452.   #define no_curdir_lint
  453.   
  454. ***************
  455. *** 68,74 ****
  456.       ZSubscriptions.c \
  457.       ZVariables.c \
  458.       Zinternal.c \
  459. !     acl_files.c
  460.   
  461.   #ifdef KERBEROS
  462.   OLIST=    \
  463. --- 68,75 ----
  464.       ZSubscriptions.c \
  465.       ZVariables.c \
  466.       Zinternal.c \
  467. !     acl_files.c \
  468. !     strcasecmp.c
  469.   
  470.   #ifdef KERBEROS
  471.   OLIST=    \
  472. ***************
  473. *** 202,211 ****
  474.   all::
  475.       $(RM) ../libs/libzephyr.a ../libs/libzephyr_p.a
  476.       $(CP) libzephyr.a ../libs/libzephyr.a
  477. !     $(RANLIB) -t ../libs/libzephyr.a
  478.   #ifdef PROFILED_LIBS
  479.       $(CP) libzephyr_p.a ../libs/libzephyr_p.a
  480. !     $(RANLIB) -t ../libs/libzephyr_p.a
  481.   #endif
  482.       
  483.   
  484. --- 203,212 ----
  485.   all::
  486.       $(RM) ../libs/libzephyr.a ../libs/libzephyr_p.a
  487.       $(CP) libzephyr.a ../libs/libzephyr.a
  488. !     $(RANLIB) ../libs/libzephyr.a
  489.   #ifdef PROFILED_LIBS
  490.       $(CP) libzephyr_p.a ../libs/libzephyr_p.a
  491. !     $(RANLIB) ../libs/libzephyr_p.a
  492.   #endif
  493.       
  494.   
  495. diff -rc src/lib/ZMakeAuthentication.c /mit/zephyr/src/lib/ZMakeAuthentication.c
  496. *** patchlevel0/lib/ZMakeAuthentication.c    Thu May 25 16:09:52 1989
  497. --- src/lib/ZMakeAuthentication.c    Mon Oct  2 08:38:24 1989
  498. ***************
  499. *** 10,19 ****
  500.    *    For copying and distribution information, see the file
  501.    *    "mit-copyright.h". 
  502.    */
  503. ! /* $Header: ZMakeAuthentication.c,v 1.7 89/05/25 16:09:37 jtkohl Exp $ */
  504.   
  505.   #ifndef lint
  506. ! static char rcsid_ZMakeAuthentication_c[] = "$Header: ZMakeAuthentication.c,v 1.7 89/05/25 16:09:37 jtkohl Exp $";
  507.   #endif lint
  508.   
  509.   #include <zephyr/mit-copyright.h>
  510. --- 10,19 ----
  511.    *    For copying and distribution information, see the file
  512.    *    "mit-copyright.h". 
  513.    */
  514. ! /* $Id: ZMakeAuthentication.c,v 1.9 89/10/02 08:38:23 jtkohl Exp $ */
  515.   
  516.   #ifndef lint
  517. ! static char rcsid_ZMakeAuthentication_c[] = "$Id: ZMakeAuthentication.c,v 1.9 89/10/02 08:38:23 jtkohl Exp $";
  518.   #endif lint
  519.   
  520.   #include <zephyr/mit-copyright.h>
  521. ***************
  522. *** 56,61 ****
  523. --- 56,62 ----
  524.   #else
  525.       notice->z_auth = 1;
  526.       notice->z_authent_len = 0;
  527. +     notice->z_ascii_authent = "";
  528.       return (Z_FormatRawHeader(notice, buffer, buffer_len, len, (char **) 0));
  529.   #endif
  530.   }
  531. diff -rc src/lib/krb_err.et /mit/zephyr/src/lib/krb_err.et
  532. *** patchlevel0/lib/krb_err.et    Tue Aug  2 09:35:06 1988
  533. --- src/lib/krb_err.et    Tue Oct 10 15:23:17 1989
  534. ***************
  535. *** 3,258 ****
  536.   #    For copying and distribution information, see the file
  537.   #    "mit-copyright.h".
  538.   # 
  539. ! #    $Source: /mit/zephyr/src/lib/RCS/krb_err.et,v $
  540.   #    $Author: jtkohl $
  541. ! #    $Header: krb_err.et,v 1.3 88/08/02 09:34:55 jtkohl Exp $
  542.   #
  543.       error_table    krb
  544.   
  545. !     ec        KSUCCESS,
  546.               "Kerberos successful"
  547.   
  548. !     ec        KDC_NAME_EXP,
  549.               "Kerberos principal expired"
  550.   
  551. !     ec        KDC_SERVICE_EXP,
  552.               "Kerberos service expired"
  553.   
  554. !     ec        KDC_AUTH_EXP,
  555.               "Kerberos auth expired"
  556.   
  557. !     ec        KDC_PKT_VER,
  558.               "Incorrect kerberos master key version"
  559.   
  560. !     ec        KDC_P_MKEY_VER,
  561.               "Incorrect kerberos master key version"
  562.   
  563. !     ec        KDC_S_MKEY_VER,
  564.               "Incorrect kerberos master key version"
  565.   
  566. !     ec        KDC_BYTE_ORDER,
  567.               "Kerberos error: byte order unknown"
  568.   
  569. !     ec        KDC_PR_UNKNOWN,
  570.               "Kerberos principal unknown"
  571.   
  572. !     ec        KDC_PR_N_UNIQUE,
  573.               "Kerberos principal not unique"
  574.   
  575. !     ec        KDC_NULL_KEY,
  576.               "Kerberos principal has null key"
  577.   
  578. !     ec        KRB_RES11,
  579.                   "Reserved 11"
  580.   
  581. !     ec        KRB_RES12,
  582.                   "Reserved 12"
  583.     
  584. !     ec        KRB_RES13,
  585.                   "Reserved 13"
  586.   
  587. !     ec        KRB_RES14,
  588.                   "Reserved 14"
  589.   
  590. !     ec        KRB_RES15,
  591.                   "Reserved 15"
  592.   
  593. !     ec        KRB_RES16,
  594.                   "Reserved 16"
  595.   
  596. !     ec        KRB_RES17,
  597.                   "Reserved 17"
  598.   
  599. !     ec        KRB_RES18,
  600.                   "Reserved 18"
  601.   
  602. !     ec        KRB_RES19,
  603.                   "Reserved 19"
  604.   
  605. !     ec        KDC_GEN_ERR,
  606.               "Generic error from Kerberos KDC"
  607.   
  608. !     ec        GC_TKFIL,
  609.               "Can't read Kerberos ticket file"
  610.   
  611. !     ec        GC_NOTKT,
  612.               "Can't find Kerberos ticket or TGT"
  613.   
  614. !     ec        KRB_RES23,
  615.               "Reserved 23"
  616.   
  617. !     ec        KRB_RES24,
  618.               "Reserved 24"
  619.   
  620. !     ec        KRB_RES25,
  621.               "Reserved 25"
  622.   
  623. !     ec        MK_AP_TGTEXP,
  624.               "Kerberos TGT Expired"
  625.   
  626. !     ec        KRB_RES27,
  627.               "Reserved 27"
  628.   
  629. !     ec        KRB_RES28,
  630.               "Reserved 28"
  631.   
  632. !     ec        KRB_RES29,
  633.               "Reserved 29"
  634.   
  635. !     ec        KRB_RES30,
  636.               "Reserved 30"
  637.   
  638. !     ec        RD_AP_UNDEC,
  639.               "Kerberos error: Can't decode authenticator"
  640.   
  641. !     ec        RD_AP_EXP,
  642.               "Kerberos ticket expired"
  643.   
  644. !     ec        RD_AP_NYV,
  645.               "Kerberos ticket not yet valid"
  646.   
  647. !     ec        RD_AP_REPEAT,
  648.               "Kerberos error: Repeated request"
  649.   
  650. !     ec        RD_AP_NOT_US,
  651.               "The kerberos ticket isn't for us"
  652.   
  653. !     ec        RD_AP_INCON,
  654.               "Kerberos request inconsistent"
  655.   
  656. !     ec        RD_AP_TIME,
  657.               "Kerberos error: delta_t too big"
  658.   
  659. !     ec        RD_AP_BADD,
  660.               "Kerberos error: incorrect net address"
  661.   
  662. !     ec        RD_AP_VERSION,
  663.               "Kerberos protocol version mismatch"
  664.   
  665. !     ec        RD_AP_MSG_TYPE,
  666.               "Kerberos error: invalid msg type"
  667.   
  668. !     ec        RD_AP_MODIFIED,
  669.               "Kerberos error: message stream modified"
  670.   
  671. !     ec        RD_AP_ORDER,
  672.               "Kerberos error: message out of order"
  673.   
  674. !     ec        RD_AP_UNAUTHOR,
  675.               "Kerberos error: unauthorized request"
  676.   
  677. !     ec        KRB_RES44,
  678.               "Reserved 44"
  679.   
  680. !     ec        KRB_RES45,
  681.               "Reserved 45"
  682.   
  683. !     ec        KRB_RES46,
  684.               "Reserved 46"
  685.   
  686. !     ec        KRB_RES47,
  687.               "Reserved 47"
  688.   
  689. !     ec        KRB_RES48,
  690.               "Reserved 48"
  691.   
  692. !     ec        KRB_RES49,
  693.               "Reserved 49"
  694.   
  695. !     ec        KRB_RES50,
  696.               "Reserved 50"
  697.   
  698. !     ec        GT_PW_NULL,
  699.               "Kerberos error: current PW is null"
  700.   
  701. !     ec        GT_PW_BADPW,
  702.               "Kerberos error: Incorrect current password"
  703.   
  704. !     ec        GT_PW_PROT,
  705.               "Kerberos protocol error"
  706.   
  707. !     ec        GT_PW_KDCERR,
  708.               "Error returned by Kerberos KDC"
  709.   
  710. !     ec        GT_PW_NULLTKT,
  711.               "Null Kerberos ticket returned by KDC"
  712.   
  713. !     ec        SKDC_RETRY,
  714.               "Kerberos error: Retry count exceeded"
  715.   
  716. !     ec        SKDC_CANT,
  717.               "Kerberos error: Can't send request"
  718.   
  719. !     ec        KRB_RES58,
  720.               "Reserved 58"
  721.   
  722. !     ec        KRB_RES59,
  723.               "Reserved 59"
  724.   
  725. !     ec        KRB_RES60,
  726.               "Reserved 60"
  727.   
  728. !     ec        INTK_W_NOTALL,
  729.               "Kerberos error: not all tickets returned"
  730.   
  731. !     ec        INTK_BADPW,
  732.               "Kerberos error: incorrect password"
  733.   
  734. !     ec        INTK_PROT,
  735.               "Kerberos error: Protocol Error"
  736.   
  737. !     ec        KRB_RES64,
  738.               "Reserved 64"
  739.   
  740. !     ec        KRB_RES65,
  741.               "Reserved 65"
  742.   
  743. !     ec        KRB_RES66,
  744.               "Reserved 66"
  745.   
  746. !     ec        KRB_RES67,
  747.               "Reserved 67"
  748.   
  749. !     ec        KRB_RES68,
  750.               "Reserved 68"
  751.   
  752. !     ec        KRB_RES69,
  753.               "Reserved 69"
  754.   
  755. !     ec        INTK_ERR,
  756.               "Other error"
  757.   
  758. !     ec        AD_NOTGT,
  759.               "Don't have Kerberos ticket-granting ticket"
  760.   
  761. !     ec        KRB_RES72,
  762.               "Reserved 72"
  763.   
  764. !     ec        KRB_RES73,
  765.               "Reserved 73"
  766.   
  767. !     ec        KRB_RES74,
  768.               "Reserved 74"
  769.   
  770. !     ec        KRB_RES75,
  771.               "Reserved 75"
  772.   
  773. !     ec        NO_TKT_FIL,
  774.               "No ticket file found"
  775.   
  776. !     ec        TKT_FIL_ACC,
  777.               "Couldn't access ticket file"
  778.   
  779. !     ec        TKT_FIL_LCK,
  780.               "Couldn't lock ticket file"
  781.   
  782. !     ec        TKT_FIL_FMT,
  783.               "Bad ticket file format"
  784.   
  785. !     ec        TKT_FIL_INI,
  786.               "tf_init not called first"
  787.   
  788. !     ec        KNAME_FMT,
  789.               "Bad Kerberos name format"
  790.   
  791.       end
  792. --- 3,258 ----
  793.   #    For copying and distribution information, see the file
  794.   #    "mit-copyright.h".
  795.   # 
  796. ! #    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/lib/RCS/krb_err.et,v $
  797.   #    $Author: jtkohl $
  798. ! #    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/lib/RCS/krb_err.et,v 1.4 89/10/10 15:23:05 jtkohl Exp $
  799.   #
  800.       error_table    krb
  801.   
  802. !     ec        KRBET_KSUCCESS,
  803.               "Kerberos successful"
  804.   
  805. !     ec        KRBET_KDC_NAME_EXP,
  806.               "Kerberos principal expired"
  807.   
  808. !     ec        KRBET_KDC_SERVICE_EXP,
  809.               "Kerberos service expired"
  810.   
  811. !     ec        KRBET_KDC_AUTH_EXP,
  812.               "Kerberos auth expired"
  813.   
  814. !     ec        KRBET_KDC_PKT_VER,
  815.               "Incorrect kerberos master key version"
  816.   
  817. !     ec        KRBET_KDC_P_MKEY_VER,
  818.               "Incorrect kerberos master key version"
  819.   
  820. !     ec        KRBET_KDC_S_MKEY_VER,
  821.               "Incorrect kerberos master key version"
  822.   
  823. !     ec        KRBET_KDC_BYTE_ORDER,
  824.               "Kerberos error: byte order unknown"
  825.   
  826. !     ec        KRBET_KDC_PR_UNKNOWN,
  827.               "Kerberos principal unknown"
  828.   
  829. !     ec        KRBET_KDC_PR_N_UNIQUE,
  830.               "Kerberos principal not unique"
  831.   
  832. !     ec        KRBET_KDC_NULL_KEY,
  833.               "Kerberos principal has null key"
  834.   
  835. !     ec        KRBET_KRB_RES11,
  836.                   "Reserved 11"
  837.   
  838. !     ec        KRBET_KRB_RES12,
  839.                   "Reserved 12"
  840.     
  841. !     ec        KRBET_KRB_RES13,
  842.                   "Reserved 13"
  843.   
  844. !     ec        KRBET_KRB_RES14,
  845.                   "Reserved 14"
  846.   
  847. !     ec        KRBET_KRB_RES15,
  848.                   "Reserved 15"
  849.   
  850. !     ec        KRBET_KRB_RES16,
  851.                   "Reserved 16"
  852.   
  853. !     ec        KRBET_KRB_RES17,
  854.                   "Reserved 17"
  855.   
  856. !     ec        KRBET_KRB_RES18,
  857.                   "Reserved 18"
  858.   
  859. !     ec        KRBET_KRB_RES19,
  860.                   "Reserved 19"
  861.   
  862. !     ec        KRBET_KDC_GEN_ERR,
  863.               "Generic error from Kerberos KDC"
  864.   
  865. !     ec        KRBET_GC_TKFIL,
  866.               "Can't read Kerberos ticket file"
  867.   
  868. !     ec        KRBET_GC_NOTKT,
  869.               "Can't find Kerberos ticket or TGT"
  870.   
  871. !     ec        KRBET_KRB_RES23,
  872.               "Reserved 23"
  873.   
  874. !     ec        KRBET_KRB_RES24,
  875.               "Reserved 24"
  876.   
  877. !     ec        KRBET_KRB_RES25,
  878.               "Reserved 25"
  879.   
  880. !     ec        KRBET_MK_AP_TGTEXP,
  881.               "Kerberos TGT Expired"
  882.   
  883. !     ec        KRBET_KRB_RES27,
  884.               "Reserved 27"
  885.   
  886. !     ec        KRBET_KRB_RES28,
  887.               "Reserved 28"
  888.   
  889. !     ec        KRBET_KRB_RES29,
  890.               "Reserved 29"
  891.   
  892. !     ec        KRBET_KRB_RES30,
  893.               "Reserved 30"
  894.   
  895. !     ec        KRBET_RD_AP_UNDEC,
  896.               "Kerberos error: Can't decode authenticator"
  897.   
  898. !     ec        KRBET_RD_AP_EXP,
  899.               "Kerberos ticket expired"
  900.   
  901. !     ec        KRBET_RD_AP_NYV,
  902.               "Kerberos ticket not yet valid"
  903.   
  904. !     ec        KRBET_RD_AP_REPEAT,
  905.               "Kerberos error: Repeated request"
  906.   
  907. !     ec        KRBET_RD_AP_NOT_US,
  908.               "The kerberos ticket isn't for us"
  909.   
  910. !     ec        KRBET_RD_AP_INCON,
  911.               "Kerberos request inconsistent"
  912.   
  913. !     ec        KRBET_RD_AP_TIME,
  914.               "Kerberos error: delta_t too big"
  915.   
  916. !     ec        KRBET_RD_AP_BADD,
  917.               "Kerberos error: incorrect net address"
  918.   
  919. !     ec        KRBET_RD_AP_VERSION,
  920.               "Kerberos protocol version mismatch"
  921.   
  922. !     ec        KRBET_RD_AP_MSG_TYPE,
  923.               "Kerberos error: invalid msg type"
  924.   
  925. !     ec        KRBET_RD_AP_MODIFIED,
  926.               "Kerberos error: message stream modified"
  927.   
  928. !     ec        KRBET_RD_AP_ORDER,
  929.               "Kerberos error: message out of order"
  930.   
  931. !     ec        KRBET_RD_AP_UNAUTHOR,
  932.               "Kerberos error: unauthorized request"
  933.   
  934. !     ec        KRBET_KRB_RES44,
  935.               "Reserved 44"
  936.   
  937. !     ec        KRBET_KRB_RES45,
  938.               "Reserved 45"
  939.   
  940. !     ec        KRBET_KRB_RES46,
  941.               "Reserved 46"
  942.   
  943. !     ec        KRBET_KRB_RES47,
  944.               "Reserved 47"
  945.   
  946. !     ec        KRBET_KRB_RES48,
  947.               "Reserved 48"
  948.   
  949. !     ec        KRBET_KRB_RES49,
  950.               "Reserved 49"
  951.   
  952. !     ec        KRBET_KRB_RES50,
  953.               "Reserved 50"
  954.   
  955. !     ec        KRBET_GT_PW_NULL,
  956.               "Kerberos error: current PW is null"
  957.   
  958. !     ec        KRBET_GT_PW_BADPW,
  959.               "Kerberos error: Incorrect current password"
  960.   
  961. !     ec        KRBET_GT_PW_PROT,
  962.               "Kerberos protocol error"
  963.   
  964. !     ec        KRBET_GT_PW_KDCERR,
  965.               "Error returned by Kerberos KDC"
  966.   
  967. !     ec        KRBET_GT_PW_NULLTKT,
  968.               "Null Kerberos ticket returned by KDC"
  969.   
  970. !     ec        KRBET_SKDC_RETRY,
  971.               "Kerberos error: Retry count exceeded"
  972.   
  973. !     ec        KRBET_SKDC_CANT,
  974.               "Kerberos error: Can't send request"
  975.   
  976. !     ec        KRBET_KRB_RES58,
  977.               "Reserved 58"
  978.   
  979. !     ec        KRBET_KRB_RES59,
  980.               "Reserved 59"
  981.   
  982. !     ec        KRBET_KRB_RES60,
  983.               "Reserved 60"
  984.   
  985. !     ec        KRBET_INTK_W_NOTALL,
  986.               "Kerberos error: not all tickets returned"
  987.   
  988. !     ec        KRBET_INTK_BADPW,
  989.               "Kerberos error: incorrect password"
  990.   
  991. !     ec        KRBET_INTK_PROT,
  992.               "Kerberos error: Protocol Error"
  993.   
  994. !     ec        KRBET_KRB_RES64,
  995.               "Reserved 64"
  996.   
  997. !     ec        KRBET_KRB_RES65,
  998.               "Reserved 65"
  999.   
  1000. !     ec        KRBET_KRB_RES66,
  1001.               "Reserved 66"
  1002.   
  1003. !     ec        KRBET_KRB_RES67,
  1004.               "Reserved 67"
  1005.   
  1006. !     ec        KRBET_KRB_RES68,
  1007.               "Reserved 68"
  1008.   
  1009. !     ec        KRBET_KRB_RES69,
  1010.               "Reserved 69"
  1011.   
  1012. !     ec        KRBET_INTK_ERR,
  1013.               "Other error"
  1014.   
  1015. !     ec        KRBET_AD_NOTGT,
  1016.               "Don't have Kerberos ticket-granting ticket"
  1017.   
  1018. !     ec        KRBET_KRB_RES72,
  1019.               "Reserved 72"
  1020.   
  1021. !     ec        KRBET_KRB_RES73,
  1022.               "Reserved 73"
  1023.   
  1024. !     ec        KRBET_KRB_RES74,
  1025.               "Reserved 74"
  1026.   
  1027. !     ec        KRBET_KRB_RES75,
  1028.               "Reserved 75"
  1029.   
  1030. !     ec        KRBET_NO_TKT_FIL,
  1031.               "No ticket file found"
  1032.   
  1033. !     ec        KRBET_TKT_FIL_ACC,
  1034.               "Couldn't access ticket file"
  1035.   
  1036. !     ec        KRBET_TKT_FIL_LCK,
  1037.               "Couldn't lock ticket file"
  1038.   
  1039. !     ec        KRBET_TKT_FIL_FMT,
  1040.               "Bad ticket file format"
  1041.   
  1042. !     ec        KRBET_TKT_FIL_INI,
  1043.               "tf_init not called first"
  1044.   
  1045. !     ec        KRBET_KNAME_FMT,
  1046.               "Bad Kerberos name format"
  1047.   
  1048.       end
  1049. diff -rc src/lib/krb_err.h /mit/zephyr/src/lib/krb_err.h
  1050. *** patchlevel0/lib/krb_err.h    Tue Jun 27 17:19:28 1989
  1051. --- src/lib/krb_err.h    Tue Oct 17 16:24:28 1989
  1052. ***************
  1053. *** 0 ****
  1054. --- 1,92 ----
  1055. + /*
  1056. +  * krb_err.h:
  1057. +  * This file is automatically generated; please do not edit it.
  1058. +  */
  1059. + #define KRBET_KSUCCESS                           (39525376L)
  1060. + #define KRBET_KDC_NAME_EXP                       (39525377L)
  1061. + #define KRBET_KDC_SERVICE_EXP                    (39525378L)
  1062. + #define KRBET_KDC_AUTH_EXP                       (39525379L)
  1063. + #define KRBET_KDC_PKT_VER                        (39525380L)
  1064. + #define KRBET_KDC_P_MKEY_VER                     (39525381L)
  1065. + #define KRBET_KDC_S_MKEY_VER                     (39525382L)
  1066. + #define KRBET_KDC_BYTE_ORDER                     (39525383L)
  1067. + #define KRBET_KDC_PR_UNKNOWN                     (39525384L)
  1068. + #define KRBET_KDC_PR_N_UNIQUE                    (39525385L)
  1069. + #define KRBET_KDC_NULL_KEY                       (39525386L)
  1070. + #define KRBET_KRB_RES11                          (39525387L)
  1071. + #define KRBET_KRB_RES12                          (39525388L)
  1072. + #define KRBET_KRB_RES13                          (39525389L)
  1073. + #define KRBET_KRB_RES14                          (39525390L)
  1074. + #define KRBET_KRB_RES15                          (39525391L)
  1075. + #define KRBET_KRB_RES16                          (39525392L)
  1076. + #define KRBET_KRB_RES17                          (39525393L)
  1077. + #define KRBET_KRB_RES18                          (39525394L)
  1078. + #define KRBET_KRB_RES19                          (39525395L)
  1079. + #define KRBET_KDC_GEN_ERR                        (39525396L)
  1080. + #define KRBET_GC_TKFIL                           (39525397L)
  1081. + #define KRBET_GC_NOTKT                           (39525398L)
  1082. + #define KRBET_KRB_RES23                          (39525399L)
  1083. + #define KRBET_KRB_RES24                          (39525400L)
  1084. + #define KRBET_KRB_RES25                          (39525401L)
  1085. + #define KRBET_MK_AP_TGTEXP                       (39525402L)
  1086. + #define KRBET_KRB_RES27                          (39525403L)
  1087. + #define KRBET_KRB_RES28                          (39525404L)
  1088. + #define KRBET_KRB_RES29                          (39525405L)
  1089. + #define KRBET_KRB_RES30                          (39525406L)
  1090. + #define KRBET_RD_AP_UNDEC                        (39525407L)
  1091. + #define KRBET_RD_AP_EXP                          (39525408L)
  1092. + #define KRBET_RD_AP_NYV                          (39525409L)
  1093. + #define KRBET_RD_AP_REPEAT                       (39525410L)
  1094. + #define KRBET_RD_AP_NOT_US                       (39525411L)
  1095. + #define KRBET_RD_AP_INCON                        (39525412L)
  1096. + #define KRBET_RD_AP_TIME                         (39525413L)
  1097. + #define KRBET_RD_AP_BADD                         (39525414L)
  1098. + #define KRBET_RD_AP_VERSION                      (39525415L)
  1099. + #define KRBET_RD_AP_MSG_TYPE                     (39525416L)
  1100. + #define KRBET_RD_AP_MODIFIED                     (39525417L)
  1101. + #define KRBET_RD_AP_ORDER                        (39525418L)
  1102. + #define KRBET_RD_AP_UNAUTHOR                     (39525419L)
  1103. + #define KRBET_KRB_RES44                          (39525420L)
  1104. + #define KRBET_KRB_RES45                          (39525421L)
  1105. + #define KRBET_KRB_RES46                          (39525422L)
  1106. + #define KRBET_KRB_RES47                          (39525423L)
  1107. + #define KRBET_KRB_RES48                          (39525424L)
  1108. + #define KRBET_KRB_RES49                          (39525425L)
  1109. + #define KRBET_KRB_RES50                          (39525426L)
  1110. + #define KRBET_GT_PW_NULL                         (39525427L)
  1111. + #define KRBET_GT_PW_BADPW                        (39525428L)
  1112. + #define KRBET_GT_PW_PROT                         (39525429L)
  1113. + #define KRBET_GT_PW_KDCERR                       (39525430L)
  1114. + #define KRBET_GT_PW_NULLTKT                      (39525431L)
  1115. + #define KRBET_SKDC_RETRY                         (39525432L)
  1116. + #define KRBET_SKDC_CANT                          (39525433L)
  1117. + #define KRBET_KRB_RES58                          (39525434L)
  1118. + #define KRBET_KRB_RES59                          (39525435L)
  1119. + #define KRBET_KRB_RES60                          (39525436L)
  1120. + #define KRBET_INTK_W_NOTALL                      (39525437L)
  1121. + #define KRBET_INTK_BADPW                         (39525438L)
  1122. + #define KRBET_INTK_PROT                          (39525439L)
  1123. + #define KRBET_KRB_RES64                          (39525440L)
  1124. + #define KRBET_KRB_RES65                          (39525441L)
  1125. + #define KRBET_KRB_RES66                          (39525442L)
  1126. + #define KRBET_KRB_RES67                          (39525443L)
  1127. + #define KRBET_KRB_RES68                          (39525444L)
  1128. + #define KRBET_KRB_RES69                          (39525445L)
  1129. + #define KRBET_INTK_ERR                           (39525446L)
  1130. + #define KRBET_AD_NOTGT                           (39525447L)
  1131. + #define KRBET_KRB_RES72                          (39525448L)
  1132. + #define KRBET_KRB_RES73                          (39525449L)
  1133. + #define KRBET_KRB_RES74                          (39525450L)
  1134. + #define KRBET_KRB_RES75                          (39525451L)
  1135. + #define KRBET_NO_TKT_FIL                         (39525452L)
  1136. + #define KRBET_TKT_FIL_ACC                        (39525453L)
  1137. + #define KRBET_TKT_FIL_LCK                        (39525454L)
  1138. + #define KRBET_TKT_FIL_FMT                        (39525455L)
  1139. + #define KRBET_TKT_FIL_INI                        (39525456L)
  1140. + #define KRBET_KNAME_FMT                          (39525457L)
  1141. + extern void initialize_krb_error_table ();
  1142. + #define ERROR_TABLE_BASE_krb (39525376L)
  1143. + /* for compatibility with older versions... */
  1144. + #define init_krb_err_tbl initialize_krb_error_table
  1145. + #define krb_err_base ERROR_TABLE_BASE_krb
  1146. diff -rc src/lib/strcasecmp.c /mit/zephyr/src/lib/strcasecmp.c
  1147. *** patchlevel0/lib/strcasecmp.c    Mon Nov 14 11:28:12 1988
  1148. --- src/lib/strcasecmp.c    Tue Oct 17 16:15:50 1989
  1149. ***************
  1150. *** 14,19 ****
  1151. --- 14,23 ----
  1152.   static char sccsid[] = "@(#)strcasecmp.c    5.5 (Berkeley) 11/24/87";
  1153.   #endif /* LIBC_SCCS and not lint */
  1154.   
  1155. + #ifdef lint
  1156. + #include <sys/types.h>
  1157. + #endif
  1158.   /*
  1159.    * This array is designed for mapping upper and lower case letter
  1160.    * together for a case independent comparison.  The mappings are
  1161. diff -rc src/man/man1/zwgc.1 /mit/zephyr/src/man/man1/zwgc.1
  1162. *** patchlevel0/man/man1/zwgc.1    Wed May 10 10:19:47 1989
  1163. --- src/man/man1/zwgc.1    Thu Jul 20 14:40:06 1989
  1164. ***************
  1165. *** 1,6 ****
  1166.   .\"    $Source: /mit/zephyr/src/man/man1/RCS/zwgc.1,v $
  1167.   .\"    $Author: jtkohl $
  1168. ! .\"    $Header: zwgc.1,v 1.14 89/05/10 10:19:33 jtkohl Exp $
  1169.   .\"
  1170.   .\" Copyright 1987,1988 by the Massachusetts Institute of Technology
  1171.   .\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
  1172. --- 1,6 ----
  1173.   .\"    $Source: /mit/zephyr/src/man/man1/RCS/zwgc.1,v $
  1174.   .\"    $Author: jtkohl $
  1175. ! .\"    $Header: zwgc.1,v 1.15 89/07/20 14:39:35 jtkohl Exp $
  1176.   .\"
  1177.   .\" Copyright 1987,1988 by the Massachusetts Institute of Technology
  1178.   .\" All rights reserved.  The file /usr/include/zephyr/mit-copyright.h
  1179. ***************
  1180. *** 194,200 ****
  1181.   it is running on a terminal without window support.
  1182.   .TP
  1183.   $fromhost
  1184. ! Returns the full name of the host that the notice was sent from.
  1185.   .TP
  1186.   $message
  1187.   Returns the message contained in the notice.
  1188. --- 194,203 ----
  1189.   it is running on a terminal without window support.
  1190.   .TP
  1191.   $fromhost
  1192. ! Returns the full name of the host that the notice appears to have been
  1193. ! sent from.  This is not fully reliable, as the information used to
  1194. ! determine this hostname is not guaranteed to be correct (even for
  1195. ! authentic messages).
  1196.   .TP
  1197.   $message
  1198.   Returns the message contained in the notice.
  1199. ***************
  1200. *** 298,308 ****
  1201.   (logical) Force screen to unsave when a message first appears. [default True]
  1202.   .TP
  1203.   reverseStack
  1204. ! (logical) Stack WindowGram windows such that the oldest messages
  1205. ! normally show on top.  This option only works correctly with X window
  1206. ! managers that do not reparent top-level windows, and has some unusual
  1207. ! interactions with other windows if the user manaully restacks either the
  1208. ! other windows or the WindowGram windows. [default False]
  1209.   .TP
  1210.   name
  1211.   (string) window name [default "Zwgc"]
  1212. --- 301,312 ----
  1213.   (logical) Force screen to unsave when a message first appears. [default True]
  1214.   .TP
  1215.   reverseStack
  1216. ! (logical) Attempt to stack WindowGram windows such that the oldest messages
  1217. ! normally show on top.  Some X window managers may silently ignore
  1218. ! .IR zwgc 's
  1219. ! attempts to restack its windows.  This option can cause some unusual
  1220. ! interactions with other windows if the user manually restacks either the
  1221. ! other windows or the WindowGram windows.  [default False]
  1222.   .TP
  1223.   name
  1224.   (string) window name [default "Zwgc"]
  1225. diff -rc src/server/Imakefile /mit/zephyr/src/server/Imakefile
  1226. *** patchlevel0/server/Imakefile    Tue Apr  4 11:23:14 1989
  1227. --- src/server/Imakefile    Mon Sep 18 14:24:35 1989
  1228. ***************
  1229. *** 3,11 ****
  1230.   /**/#    For copying and distribution information, see the file
  1231.   /**/#    "mit-copyright.h". 
  1232.   /**/#
  1233. ! /**/#    $Source: /mit/zephyr/src/server/RCS/Imakefile,v $
  1234.   /**/#    $Author: jtkohl $
  1235. ! /**/#    $Header: Imakefile,v 1.5 89/04/04 11:22:55 jtkohl Exp $
  1236.   /**/#
  1237.   
  1238.   #if defined(DO_SYSLOG) && defined(SYSLOG_COMPAT42)
  1239. --- 3,11 ----
  1240.   /**/#    For copying and distribution information, see the file
  1241.   /**/#    "mit-copyright.h". 
  1242.   /**/#
  1243. ! /**/#    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/Imakefile,v $
  1244.   /**/#    $Author: jtkohl $
  1245. ! /**/#    $Header: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/Imakefile,v 1.6 89/09/18 14:24:28 jtkohl Exp $
  1246.   /**/#
  1247.   
  1248.   #if defined(DO_SYSLOG) && defined(SYSLOG_COMPAT42)
  1249. ***************
  1250. *** 34,40 ****
  1251.       subscr.c \
  1252.       timer.c \
  1253.       uloc.c \
  1254. !     kstuff.c
  1255.   
  1256.   OBJS=     zsrv_err.o \
  1257.       access.o \
  1258. --- 34,41 ----
  1259.       subscr.c \
  1260.       timer.c \
  1261.       uloc.c \
  1262. !     kstuff.c \
  1263. !     version.c
  1264.   
  1265.   OBJS=     zsrv_err.o \
  1266.       access.o \
  1267. ***************
  1268. *** 49,55 ****
  1269.       subscr.o \
  1270.       timer.o \
  1271.       uloc.o \
  1272. !     kstuff.o
  1273.   
  1274.   OTHERSRCS= zsrv_err.et
  1275.   CONFIG_FILES= default.subscriptions
  1276. --- 50,57 ----
  1277.       subscr.o \
  1278.       timer.o \
  1279.       uloc.o \
  1280. !     kstuff.o \
  1281. !     version.c
  1282.   
  1283.   OTHERSRCS= zsrv_err.et
  1284.   CONFIG_FILES= default.subscriptions
  1285. diff -rc src/server/bdump.c /mit/zephyr/src/server/bdump.c
  1286. *** patchlevel0/server/bdump.c    Thu May  4 17:36:28 1989
  1287. --- src/server/bdump.c    Thu Aug 31 15:33:44 1989
  1288. ***************
  1289. *** 3,9 ****
  1290.    *
  1291.    *    Created by:    John T. Kohl
  1292.    *
  1293. !  *    $Source: /mit/zephyr/src/server/RCS/bdump.c,v $
  1294.    *    $Author: jtkohl $
  1295.    *
  1296.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  1297. --- 3,9 ----
  1298.    *
  1299.    *    Created by:    John T. Kohl
  1300.    *
  1301. !  *    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/bdump.c,v $
  1302.    *    $Author: jtkohl $
  1303.    *
  1304.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  1305. ***************
  1306. *** 15,21 ****
  1307.    
  1308.   #ifndef lint
  1309.   #ifndef SABER
  1310. ! static char rcsid_bdump_c[] = "$Header: bdump.c,v 1.31 89/05/04 17:36:06 jtkohl Exp $";
  1311.   #endif /* SABER */
  1312.   #endif /* lint */
  1313.    
  1314. --- 15,21 ----
  1315.    
  1316.   #ifndef lint
  1317.   #ifndef SABER
  1318. ! static char rcsid_bdump_c[] = "$Header: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/bdump.c,v 1.32 89/08/31 15:33:35 jtkohl Exp $";
  1319.   #endif /* SABER */
  1320.   #endif /* lint */
  1321.    
  1322. ***************
  1323. *** 173,178 ****
  1324. --- 173,179 ----
  1325.       Code_t retval;
  1326.       int fromlen = sizeof(from);
  1327.       int omask;
  1328. +     int on = 1;
  1329.   #ifdef KERBEROS
  1330.       KTEXT_ST ticket;
  1331.       AUTH_DAT kdata;
  1332. ***************
  1333. *** 187,192 ****
  1334. --- 188,196 ----
  1335.           syslog(LOG_ERR,"accept: %m");
  1336.           return;
  1337.       }
  1338. +     if (setsockopt(live_socket, SOL_SOCKET, SO_KEEPALIVE, (char *)&on,
  1339. +         sizeof (on)) < 0)
  1340. +         syslog(LOG_WARNING, "setsockopt (SO_KEEPALIVE): %m");
  1341.    
  1342.   #ifndef KERBEROS
  1343.       fromport = ntohs(from.sin_port);
  1344. ***************
  1345. *** 302,307 ****
  1346. --- 306,312 ----
  1347.       struct sockaddr_in from;
  1348.       Code_t retval;
  1349.       int omask;
  1350. +     int on = 1;
  1351.   #ifdef KERBEROS
  1352.       KTEXT_ST ticket;
  1353.       AUTH_DAT kdata;
  1354. ***************
  1355. *** 368,373 ****
  1356. --- 373,381 ----
  1357.           cleanup(server, omask);
  1358.           return;
  1359.       }
  1360. +     if (setsockopt(live_socket, SOL_SOCKET, SO_KEEPALIVE, (char *)&on,
  1361. +         sizeof (on)) < 0)
  1362. +         syslog(LOG_WARNING, "setsockopt (SO_KEEPALIVE): %m");
  1363.       zdbug((LOG_DEBUG, "gbd connected"));
  1364.    
  1365.       /* Now begin the brain dump. */
  1366. diff -rc src/server/main.c /mit/zephyr/src/server/main.c
  1367. *** patchlevel0/server/main.c    Mon May 15 14:29:52 1989
  1368. --- src/server/main.c    Mon Sep 18 14:23:37 1989
  1369. ***************
  1370. *** 3,9 ****
  1371.    *
  1372.    *    Created by:    John T. Kohl
  1373.    *
  1374. !  *    $Source: /mit/zephyr/src/server/RCS/main.c,v $
  1375.    *    $Author: jtkohl $
  1376.    *
  1377.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  1378. --- 3,9 ----
  1379.    *
  1380.    *    Created by:    John T. Kohl
  1381.    *
  1382. !  *    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/main.c,v $
  1383.    *    $Author: jtkohl $
  1384.    *
  1385.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  1386. ***************
  1387. *** 13,34 ****
  1388.   
  1389.   #include <zephyr/mit-copyright.h>
  1390.   
  1391. - #ifdef DEBUG
  1392. - char version[] = "Zephyr Server (DEBUG) 3.10";
  1393. - #else
  1394. - char version[] = "Zephyr Server 3.10";
  1395. - #endif DEBUG
  1396.   #ifndef lint
  1397.   #ifndef SABER
  1398. ! static char rcsid_main_c[] = "$Header: main.c,v 1.37 89/05/15 14:29:42 jtkohl Exp $";
  1399. ! char copyright[] = "Copyright (c) 1987,1988 Massachusetts Institute of Technology.\n";
  1400. ! #ifdef CONCURRENT
  1401. ! char concurrent[] = "Brain-dump concurrency enabled";
  1402. ! #else
  1403. ! char concurrent[] = "no brain-dump concurrency";
  1404. ! #endif CONCURRENT
  1405.   #endif SABER
  1406.   #endif lint
  1407.   /*
  1408.    * Server loop for Zephyr.
  1409.    */
  1410. --- 13,24 ----
  1411.   
  1412.   #include <zephyr/mit-copyright.h>
  1413.   
  1414.   #ifndef lint
  1415.   #ifndef SABER
  1416. ! static char rcsid_main_c[] = "$Id: main.c,v 1.38 89/09/18 14:23:31 jtkohl Exp $";
  1417.   #endif SABER
  1418.   #endif lint
  1419.   /*
  1420.    * Server loop for Zephyr.
  1421.    */
  1422. diff -rc src/server/server.c /mit/zephyr/src/server/server.c
  1423. *** patchlevel0/server/server.c    Wed Oct 19 23:10:34 1988
  1424. --- src/server/server.c    Tue Oct 17 16:05:32 1989
  1425. ***************
  1426. *** 3,10 ****
  1427.    *
  1428.    *    Created by:    John T. Kohl
  1429.    *
  1430. !  *    $Source: /paris/source/4.3/athena.lib/zephyr/server/RCS/server.c,v $
  1431. !  *    $Author: raeburn $
  1432.    *
  1433.    *    Copyright (c) 1987 by the Massachusetts Institute of Technology.
  1434.    *    For copying and distribution information, see the file
  1435. --- 3,10 ----
  1436.    *
  1437.    *    Created by:    John T. Kohl
  1438.    *
  1439. !  *    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/server.c,v $
  1440. !  *    $Author: jtkohl $
  1441.    *
  1442.    *    Copyright (c) 1987 by the Massachusetts Institute of Technology.
  1443.    *    For copying and distribution information, see the file
  1444. ***************
  1445. *** 15,21 ****
  1446.   
  1447.   #ifndef lint
  1448.   #ifndef SABER
  1449. ! static char rcsid_server_c[] = "$Header: server.c,v 1.38 88/10/19 22:44:27 raeburn Exp $";
  1450.   #endif SABER
  1451.   #endif lint
  1452.   
  1453. --- 15,21 ----
  1454.   
  1455.   #ifndef lint
  1456.   #ifndef SABER
  1457. ! static char rcsid_server_c[] = "$Header: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/server.c,v 1.39 89/10/17 16:05:08 jtkohl Exp $";
  1458.   #endif SABER
  1459.   #endif lint
  1460.   
  1461. ***************
  1462. *** 918,923 ****
  1463. --- 918,926 ----
  1464.   #ifdef sun
  1465.       (void) strcat(buf, "SUN");
  1466.   #endif sun
  1467. + #ifdef mips
  1468. +     (void) strcat(buf, "MIPS");
  1469. + #endif mips
  1470.       vers = strsave(buf);
  1471.   
  1472.       (void) sprintf(buf, "%d pkts", npackets);
  1473. ***************
  1474. *** 1035,1042 ****
  1475.           if (newline = index(buf, '\n'))
  1476.               *newline = '\0';
  1477.   
  1478. !         if (nused >= nhosts) {
  1479.               /* get more pointer space if necessary */
  1480.               ret_list = (char **)realloc((char *)ret_list,
  1481.                               (unsigned) nhosts * 2);
  1482.               nhosts = nhosts * 2;
  1483. --- 1038,1046 ----
  1484.           if (newline = index(buf, '\n'))
  1485.               *newline = '\0';
  1486.   
  1487. !         if (nused+1 >= nhosts) {
  1488.               /* get more pointer space if necessary */
  1489. +             /* +1 to leave room for null pointer */
  1490.               ret_list = (char **)realloc((char *)ret_list,
  1491.                               (unsigned) nhosts * 2);
  1492.               nhosts = nhosts * 2;
  1493. ***************
  1494. *** 1044,1049 ****
  1495. --- 1048,1054 ----
  1496.           ret_list[nused++] = strsave(buf);
  1497.       }
  1498.       (void) fclose(fp);
  1499. +     ret_list[nused] = (char *)0;
  1500.       return(ret_list);
  1501.   }
  1502.   
  1503. ***************
  1504. *** 1052,1065 ****
  1505.    */
  1506.   static void
  1507.   free_server_list(list)
  1508. ! char **list;
  1509.   {
  1510.       register int i;
  1511.   
  1512.       if (!nhosts)            /* nothing allocated */
  1513.           return;
  1514. !     for (i = 0; i < nhosts; i++)
  1515. !         xfree(list[i]);
  1516.       xfree(list);
  1517.       return;
  1518.   }
  1519. --- 1057,1070 ----
  1520.    */
  1521.   static void
  1522.   free_server_list(list)
  1523. ! register char **list;
  1524.   {
  1525.       register int i;
  1526.   
  1527.       if (!nhosts)            /* nothing allocated */
  1528.           return;
  1529. !     for (; *list; list++)
  1530. !         xfree(*list);
  1531.       xfree(list);
  1532.       return;
  1533.   }
  1534. diff -rc src/server/subscr.c /mit/zephyr/src/server/subscr.c
  1535. *** patchlevel0/server/subscr.c    Thu Oct 20 10:32:54 1988
  1536. --- src/server/subscr.c    Mon Oct  2 15:31:23 1989
  1537. ***************
  1538. *** 3,9 ****
  1539.    *
  1540.    *    Created by:    John T. Kohl
  1541.    *
  1542. !  *    $Source: /source/4.3/athena.lib/zephyr/server/RCS/subscr.c,v $
  1543.    *    $Author: jtkohl $
  1544.    *
  1545.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  1546. --- 3,9 ----
  1547.    *
  1548.    *    Created by:    John T. Kohl
  1549.    *
  1550. !  *    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/subscr.c,v $
  1551.    *    $Author: jtkohl $
  1552.    *
  1553.    *    Copyright (c) 1987,1988 by the Massachusetts Institute of Technology.
  1554. ***************
  1555. *** 15,21 ****
  1556.   
  1557.   #ifndef lint
  1558.   #ifndef SABER
  1559. ! static char rcsid_subscr_c[] = "$Header: subscr.c,v 1.34 88/10/20 10:32:32 jtkohl Exp $";
  1560.   #endif SABER
  1561.   #endif lint
  1562.   
  1563. --- 15,21 ----
  1564.   
  1565.   #ifndef lint
  1566.   #ifndef SABER
  1567. ! static char rcsid_subscr_c[] = "$Header: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/subscr.c,v 1.35 89/10/02 15:31:08 jtkohl Exp $";
  1568.   #endif SABER
  1569.   #endif lint
  1570.   
  1571. ***************
  1572. *** 91,98 ****
  1573.       (ZSubscr_t *) 0,
  1574.       (ZSubscr_t *) 0,
  1575.       MATCHALL_CLASS,
  1576. !     NULL,
  1577. !     NULL };
  1578.   
  1579.   /* WARNING: make sure this is the same as the number of strings you */
  1580.   /* plan to hand back to the user in response to a subscription check, */
  1581. --- 91,98 ----
  1582.       (ZSubscr_t *) 0,
  1583.       (ZSubscr_t *) 0,
  1584.       MATCHALL_CLASS,
  1585. !     "",
  1586. !     "" };
  1587.   
  1588.   /* WARNING: make sure this is the same as the number of strings you */
  1589.   /* plan to hand back to the user in response to a subscription check, */
  1590. diff -rc /dev/null /mit/zephyr/src/server/subscr.c
  1591. *** /dev/null    Tue Oct 17 14:42:35 1989
  1592. --- src/server/version.c    Tue Oct 17 16:07:39 1989
  1593. ***************
  1594. *** 0 ****
  1595. --- 1,31 ----
  1596. + /* This file is part of the Project Athena Zephyr Notification System.
  1597. +  * It contains the version identification of the Zephyr server
  1598. +  *
  1599. +  *    Created by:    John T. Kohl
  1600. +  *
  1601. +  *    $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/server/RCS/version.c,v $
  1602. +  *    $Author: jtkohl $
  1603. +  *
  1604. +  *    Copyright (c) 1989 by the Massachusetts Institute of Technology.
  1605. +  *    For copying and distribution information, see the file
  1606. +  *    "mit-copyright.h". 
  1607. +  */
  1608. + #include <zephyr/mit-copyright.h>
  1609. + #ifdef DEBUG
  1610. + char version[] = "Zephyr Server (DEBUG) $Id: version.c,v 3.13 89/10/17 16:07:27 jtkohl Exp $";
  1611. + #else
  1612. + char version[] = "Zephyr Server $Id: version.c,v 3.13 89/10/17 16:07:27 jtkohl Exp $";
  1613. + #endif DEBUG
  1614. + #ifndef lint
  1615. + #ifndef SABER
  1616. + static char rcsid_version_c[] = "$Id: version.c,v 3.13 89/10/17 16:07:27 jtkohl Exp $";
  1617. + char copyright[] = "Copyright (c) 1987,1988,1989 Massachusetts Institute of Technology.\n";
  1618. + #ifdef CONCURRENT
  1619. + char concurrent[] = "Brain-dump concurrency enabled";
  1620. + #else
  1621. + char concurrent[] = "no brain-dump concurrency";
  1622. + #endif CONCURRENT
  1623. + #endif SABER
  1624. + #endif lint
  1625. diff -rc src/tools/makeconfig /mit/zephyr/src/tools/makeconfig
  1626. *** patchlevel0/tools/makeconfig    Tue Apr 11 11:51:11 1989
  1627. --- src/tools/makeconfig    Sat Jul 29 22:34:05 1989
  1628. ***************
  1629. *** 1,6 ****
  1630. ! # $Source: /mit/zephyr/src/tools/RCS/makeconfig,v $
  1631.   # $Author: jtkohl $
  1632. ! # $Header: makeconfig,v 1.7 89/04/11 11:50:37 jtkohl Exp $
  1633.   #
  1634.   # Makefile for creating a Zephyr configuration
  1635.   #
  1636. --- 1,6 ----
  1637. ! # $Source: /afs/athena.mit.edu/astaff/project/zephyr/src/tools/RCS/makeconfig,v $
  1638.   # $Author: jtkohl $
  1639. ! # $Header: makeconfig,v 1.9 89/07/29 22:33:59 jtkohl Exp $
  1640.   #
  1641.   # Makefile for creating a Zephyr configuration
  1642.   #
  1643. ***************
  1644. *** 17,23 ****
  1645.   # make -f makeconfig SRCDIR=/u2/lockers/zephyr DESTDIR=myconfig
  1646.   
  1647.   DESTDIR    = .
  1648. ! SRCDIR     = /mit/zephyr/src
  1649.   
  1650.   LN    = ln -s
  1651.   CP    = cp
  1652. --- 17,23 ----
  1653.   # make -f makeconfig SRCDIR=/u2/lockers/zephyr DESTDIR=myconfig
  1654.   
  1655.   DESTDIR    = .
  1656. ! SRCDIR     = /afs/athena.mit.edu/astaff/project/zephyr/src
  1657.   
  1658.   LN    = ln -s
  1659.   CP    = cp
  1660. diff -rc src/zwgc/draw.c /mit/zephyr/src/zwgc/draw.c
  1661. *** patchlevel0/zwgc/draw.c    Tue May 16 15:32:09 1989
  1662. --- src/zwgc/draw.c    Thu Jul 20 10:32:38 1989
  1663. ***************
  1664. *** 9,15 ****
  1665.    */
  1666.   #include <zephyr/mit-copyright.h>
  1667.   #ifndef lint
  1668. ! static char rcsid[] = "$Header: draw.c,v 2.26 89/05/16 15:31:21 jtkohl Exp $";
  1669.   #endif lint
  1670.   
  1671.   #define FONTSPEEDHACK
  1672. --- 9,15 ----
  1673.    */
  1674.   #include <zephyr/mit-copyright.h>
  1675.   #ifndef lint
  1676. ! static char rcsid[] = "$Header: draw.c,v 2.27 89/07/20 10:32:23 jtkohl Exp $";
  1677.   #endif lint
  1678.   
  1679.   #define FONTSPEEDHACK
  1680. ***************
  1681. *** 107,114 ****
  1682. --- 107,121 ----
  1683.   typedef struct _winlist {
  1684.     struct _winlist *next;
  1685.     Window win;
  1686. +   unsigned long serial;            /* serial # of the stack request
  1687. +                        used when this window was mapped */
  1688.   } winlist;
  1689.   
  1690. + typedef struct _config_stack {
  1691. +     struct _config_stack *next;
  1692. +     Window under, over;            /* Windows involved */
  1693. + } config_stack;
  1694.   struct _master {
  1695.     int bwidth;            /* borderWidth */
  1696.     int inbwid;            /* internalBorder */
  1697. ***************
  1698. *** 135,140 ****
  1699. --- 142,148 ----
  1700.     int debugback;        /* debugging background flash? */
  1701.     Atom tagatom;            /* atom number for tag type */
  1702.     winlist *winlist;        /* window stacking list */
  1703. +   config_stack *cstack;        /* WM redirect configure stack */
  1704.   } master = {
  1705.     1, 0,
  1706.     0, 0,                /* x, y */
  1707. ***************
  1708. *** 155,160 ****
  1709. --- 163,169 ----
  1710.     1, 0,
  1711.     (Atom) 0,
  1712.     (winlist *) 0,
  1713. +   (config_stack *) 0,
  1714.   };
  1715.   
  1716.   void xtx_shutdown()
  1717. ***************
  1718. *** 666,671 ****
  1719. --- 675,681 ----
  1720.     winlist *wn = New(winlist);
  1721.     wn->next = NULL;
  1722.     wn->win = 0;
  1723. +   wn->serial = 0;
  1724.     return(wn);
  1725.   }
  1726.   
  1727. ***************
  1728. *** 675,690 ****
  1729.     free(wl);
  1730.   }
  1731.   
  1732. ! void stackunder(me, with)
  1733.        Window me, with;
  1734.   {
  1735.     XWindowChanges xwc;
  1736.   
  1737.     xwc.sibling = with;
  1738.     xwc.stack_mode = Below;
  1739.     XConfigureWindow(dpy, me, CWSibling|CWStackMode, &xwc);
  1740.   }
  1741.   
  1742.   void append_win(list, win)
  1743.        winlist *list;
  1744.        Window win;
  1745. --- 685,797 ----
  1746.     free(wl);
  1747.   }
  1748.   
  1749. ! unsigned long stackunder(me, with)
  1750.        Window me, with;
  1751.   {
  1752.     XWindowChanges xwc;
  1753. +   unsigned long nextreq;
  1754.   
  1755.     xwc.sibling = with;
  1756.     xwc.stack_mode = Below;
  1757. +   nextreq = NextRequest(dpy);
  1758.     XConfigureWindow(dpy, me, CWSibling|CWStackMode, &xwc);
  1759. +   /* This may generate an error on reparenting window managers...
  1760. +      Hopefully XFlush() will cause the error to appear before we try another
  1761. +      restack */
  1762. +   XFlush(dpy);
  1763. +   return(nextreq);
  1764.   }
  1765.   
  1766. + config_stack *new_config_stack()
  1767. + {
  1768. +     config_stack *cs = New(config_stack);
  1769. +     cs->next = NULL;
  1770. +     return(cs);
  1771. + }
  1772. + void append_cstack(cstack, under, over)
  1773. + config_stack *cstack;
  1774. + Window under, over;
  1775. + {
  1776. +   register config_stack *cs = cstack;
  1777. +   
  1778. +   while(cs->next) {
  1779. +     cs = cs->next;
  1780. +   }
  1781. +   cs->next = new_config_stack();
  1782. +   cs = cs->next;
  1783. +   cs->under = under;
  1784. +   cs->over = over;
  1785. + }
  1786. + /* get called here if the ConfigureWindow request generated a BadMatch
  1787. +    (means we were reparented) */
  1788. + void wmerror_stackunder(serial)
  1789. + unsigned long serial;
  1790. + {
  1791. +     /* we are not allowed to do Xlib calls here... grr */
  1792. +     winlist *ww = master.winlist, *ow=NULL;
  1793. +     extern int do_x_configwindow;
  1794. +     while(ww->next && (ww->serial != serial)) {
  1795. +     ow = ww;
  1796. +     ww = ww->next;
  1797. +     }
  1798. +     if (!ow || !ww->next)        /* the window has already gone away,
  1799. +                        or there is only one left */
  1800. +     return;
  1801. +     /* ww points to the window to bury
  1802. +        ow points to the window to bury under */
  1803. +     if (!master.cstack) {
  1804. +     master.cstack = new_config_stack();
  1805. +     master.cstack->over = ow->win;
  1806. +     master.cstack->under = ww->win;
  1807. +     } else
  1808. +     append_cstack(master.cstack, ww->win, ow->win);
  1809. +     do_x_configwindow = 1;
  1810. +     return;
  1811. + }
  1812. + #define free_config_stack(cs) free((char *)cs);
  1813. + void handle_x_configwindow()
  1814. + {
  1815. +     /*
  1816. +      * This is per ICCCM, Sec 4.1.5.
  1817. +      * Under some window managers (e.g. reparenting wm's),
  1818. +      * the XConfigureWindow above fails because the two windows aren't
  1819. +      * siblings.  In such a case, we need to send a synthetic event
  1820. +      * to the root window as specified in Sec. 4.1.5
  1821. +      */
  1822. +     register config_stack *cs = master.cstack;
  1823. +     register config_stack *ncs;
  1824. +     XConfigureRequestEvent config_event;
  1825. +     while (cs) {
  1826. +     config_event.type = ConfigureRequest;
  1827. +     config_event.display = dpy;
  1828. +     config_event.parent = DefaultRootWindow(dpy);
  1829. +     config_event.window = cs->under;
  1830. +     config_event.above = cs->over;
  1831. +     config_event.detail = Below;
  1832. +     config_event.value_mask = CWSibling|CWStackMode;
  1833. +     XSendEvent(dpy, DefaultRootWindow(dpy), False,
  1834. +            (SubstructureRedirectMask|SubstructureNotifyMask),
  1835. +            (XEvent *)&config_event);
  1836. +     ncs = cs->next;
  1837. +     free_config_stack(cs);
  1838. +     cs = ncs;
  1839. +     }
  1840. +     master.cstack = 0;
  1841. +     do_x_configwindow = 0;
  1842. +     return;
  1843. + }
  1844.   void append_win(list, win)
  1845.        winlist *list;
  1846.        Window win;
  1847. ***************
  1848. *** 698,704 ****
  1849.     }
  1850.     if(ow) {
  1851.       /* printf("[stacking 0x%x with 0x%x]", win, ow->win); */
  1852. !     stackunder(win, ow->win);
  1853.     }
  1854.     /* printf("stuffing 0x%x\n", win); */
  1855.     ww->win = win;
  1856. --- 805,811 ----
  1857.     }
  1858.     if(ow) {
  1859.       /* printf("[stacking 0x%x with 0x%x]", win, ow->win); */
  1860. !     ww->serial = stackunder(win, ow->win);
  1861.     }
  1862.     /* printf("stuffing 0x%x\n", win); */
  1863.     ww->win = win;
  1864. ***************
  1865. *** 1036,1043 ****
  1866. --- 1143,1154 ----
  1867.       {
  1868.       XSizeHints sizeHints;
  1869.       XWMHints wmHints;
  1870. +     XClassHint classHint;
  1871.       extern int saved_argc;
  1872.       extern char** saved_argv;
  1873. +     register char *cp;
  1874.       sizeHints.flags = USSize | USPosition;
  1875.       sizeHints.x = thisx; sizeHints.y = thisy;
  1876.       sizeHints.width = wid+BRD; sizeHints.height = hi+BRD;
  1877. ***************
  1878. *** 1044,1051 ****
  1879.       XSetStandardProperties(dpy, w, master.name, master.iconname, None,
  1880.                      saved_argv, saved_argc, &sizeHints);
  1881.       wmHints.flags = InputHint;
  1882. !     wmHints.input = True;
  1883.       XSetWMHints(dpy, w, &wmHints);
  1884.       }
  1885.       if(master.usebackground)
  1886.         {
  1887. --- 1155,1170 ----
  1888.       XSetStandardProperties(dpy, w, master.name, master.iconname, None,
  1889.                      saved_argv, saved_argc, &sizeHints);
  1890.       wmHints.flags = InputHint;
  1891. !     wmHints.input = False;        /* never need keyboard input */
  1892.       XSetWMHints(dpy, w, &wmHints);
  1893. +     cp = rindex(saved_argv[0], '/');
  1894. +     if (cp)
  1895. +         cp++;
  1896. +     else
  1897. +         cp = saved_argv[0];
  1898. +     classHint.res_name = cp;
  1899. +     classHint.res_class = "Zwgc";
  1900. +     XSetClassHint(dpy, w, &classHint);
  1901.       }
  1902.       if(master.usebackground)
  1903.         {
  1904. diff -rc src/zwgc/main.c /mit/zephyr/src/zwgc/main.c
  1905. *** patchlevel0/zwgc/main.c    Wed May 10 15:48:28 1989
  1906. --- src/zwgc/main.c    Thu Jul 20 10:15:10 1989
  1907. ***************
  1908. *** 15,21 ****
  1909.   #include <zephyr/mit-copyright.h>
  1910.   
  1911.   #ifndef lint
  1912. ! static char rcsid_stubx_c[] = "$Header: main.c,v 2.18 89/05/10 15:48:08 jtkohl Exp $";
  1913.   #include "zwgc.vers"
  1914.   #endif lint
  1915.   
  1916. --- 15,21 ----
  1917.   #include <zephyr/mit-copyright.h>
  1918.   
  1919.   #ifndef lint
  1920. ! static char rcsid_stubx_c[] = "$Header: main.c,v 2.19 89/07/20 10:14:48 jtkohl Exp $";
  1921.   #include "zwgc.vers"
  1922.   #endif lint
  1923.   
  1924. ***************
  1925. *** 311,316 ****
  1926. --- 311,321 ----
  1927.   char **saved_argv;        /* for setting WM_COMMAND property */
  1928.   int saved_argc;            /* for setting WM_COMMAND property */
  1929.   
  1930. + int do_x_configwindow = 0;    /* set if we need to react to a
  1931. +                    ConfigureWindow error (it's set at
  1932. +                    "interrupt" level) */
  1933. + extern void handle_x_configwindow();
  1934.   main(argc,argv)
  1935.        int argc;
  1936.        char **argv;
  1937. ***************
  1938. *** 412,419 ****
  1939.       /* have to arrive via the file descriptor. */
  1940.   
  1941.   #ifdef X11
  1942. !     while ((!ttymode && XPending(dpy)) || ZPending()>0)
  1943.         {
  1944.       if (!ttymode && XPending(dpy)) handle_x_event();
  1945.       if (ZPending()>0) handle_z_event();
  1946.         }
  1947. --- 417,425 ----
  1948.       /* have to arrive via the file descriptor. */
  1949.   
  1950.   #ifdef X11
  1951. !     while (do_x_configwindow || (!ttymode && XPending(dpy)) || ZPending()>0)
  1952.         {
  1953. +     if (do_x_configwindow) handle_x_configwindow();
  1954.       if (!ttymode && XPending(dpy)) handle_x_event();
  1955.       if (ZPending()>0) handle_z_event();
  1956.         }
  1957. diff -rc src/zwgc/wg_errors.c /mit/zephyr/src/zwgc/wg_errors.c
  1958. *** patchlevel0/zwgc/wg_errors.c    Wed Apr 26 15:25:29 1989
  1959. --- src/zwgc/wg_errors.c    Thu Jul 20 10:06:32 1989
  1960. ***************
  1961. *** 17,23 ****
  1962.   #endif /* X11 */
  1963.   
  1964.   #ifndef lint
  1965. ! static char rcsid_wg_errors_c[] = "$Header: wg_errors.c,v 2.6 89/04/26 15:25:22 jtkohl Exp $";
  1966.   #endif lint
  1967.   
  1968.   
  1969. --- 17,23 ----
  1970.   #endif /* X11 */
  1971.   
  1972.   #ifndef lint
  1973. ! static char rcsid_wg_errors_c[] = "$Header: wg_errors.c,v 2.7 89/07/20 10:06:16 jtkohl Exp $";
  1974.   #endif lint
  1975.   
  1976.   
  1977. ***************
  1978. *** 107,112 ****
  1979. --- 107,113 ----
  1980.   {
  1981.     /* Well, we got an error... what now? this time, we ignore it... */
  1982.     char erf[1024], errn[32];
  1983. +   extern void wmerror_stackunder();
  1984.   
  1985.     x_recent_error++;
  1986.   
  1987. ***************
  1988. *** 115,120 ****
  1989. --- 116,127 ----
  1990.         return(0);
  1991.       }
  1992.     
  1993. +   if (rep->request_code == X_ConfigureWindow && rep->error_code == BadMatch) {
  1994. +       /* got an error while restacking, use ICCCM method */
  1995. +       wmerror_stackunder(rep->serial);
  1996. +       return(0);
  1997. +   }
  1998.     XGetErrorText(dpy, rep->error_code, erf, 1024);
  1999.     fprintf(stderr, "zwgc:X11 Error: %s\n", erf);
  2000.     sprintf(errn,"%d",rep->request_code);
  2001. diff -rc src/zwgc/zwgc.vers /mit/zephyr/src/zwgc/zwgc.vers
  2002. *** patchlevel0/zwgc/zwgc.vers    Tue May 30 11:27:09 1989
  2003. --- src/zwgc/zwgc.vers    Thu Jul 20 10:23:15 1989
  2004. ***************
  2005. *** 12,21 ****
  2006.    */
  2007.   
  2008.   static char rcsid_zwgc[] =
  2009. !     "$Header: ZWGC [ZEPH0PT2o] [jtkohl:19890530.1126EDT]$";
  2010.   /*
  2011.    * Copy the header line to the top of this list, and include a
  2012.    * one-line comment on why the change was made.
  2013.    *
  2014.    * "$Header: ZWGC [ZEPH0PT2o] [jtkohl:19890530.1126EDT]$";
  2015.    * Two bug fixes: 1) null terminate fields that aren't, so trailing junk
  2016. --- 12,26 ----
  2017.    */
  2018.   
  2019.   static char rcsid_zwgc[] =
  2020. !     "$Header: ZWGC [ZEPH0PT2p] [jtkohl:19890720.1018EST]$";
  2021.   /*
  2022.    * Copy the header line to the top of this list, and include a
  2023.    * one-line comment on why the change was made.
  2024. +  *
  2025. +  * "$Header: ZWGC [ZEPH0PT2p] [jtkohl:19890720.1018EST]$";
  2026. +  * Fixes for re-parenting window managers and restacking
  2027. +  * set the class hint to make sure certain WM's are able to work properly
  2028. +  * Don't set wmHints.input (zwgc never takes keyboard input)
  2029.    *
  2030.    * "$Header: ZWGC [ZEPH0PT2o] [jtkohl:19890530.1126EDT]$";
  2031.    * Two bug fixes: 1) null terminate fields that aren't, so trailing junk
  2032.